package pub

import (
	"fmt"
	"github.com/xuri/excelize/v2"
	"math/rand"
)

//type TokenResponse struct {
//	InputTokenCount  int64  `json:"input_token_count"`
//	OutputTokenCount int64  `json:"output_token_count"`
//	ErrMsg           string `json:"err_msg"`
//}
//
//type TokenRequest struct {
//	Input  string `json:"input"`
//	Output string `json:"output"`
//}

//func GetTokens(input, output string) (response *TokenResponse) {
//
//	client := resty.New()
//	request := TokenRequest{
//		Input:  input,
//		Output: output,
//	}
//	response = new(TokenResponse)
//	_, err := client.R().EnableTrace().
//		SetResult(response).
//		SetBody(request).
//		SetHeader("Content-Type", "application/json").
//		Post(url)
//	if err != nil {
//		response.ErrMsg = err.Error()
//	}
//	return
//}

// 提示词列表
var completionList []string

// 初始化测试数据
func InitPromptTokens(path string) {

	f, err := excelize.OpenFile(path)
	if err != nil {
		fmt.Println("打开测试数据文件失败： ", err.Error())
		return
	}

	sheet := "Sheet1"
	rows, err := f.GetRows(sheet)
	if err != nil {
		fmt.Println("获取测试数据表中的行信息失败：  ", err.Error())
		return
	}
	for _, row := range rows {
		completionList = append(completionList, row[0])
	}
	fmt.Println("初始化测试数据： ", len(completionList), "条")

}

// 获取提示词
func GetCompletionTokenData(r *rand.Rand) (s string) {
	l := len(completionList)
	if l == 0 {
		return
	}
	n := r.Intn(l)
	s = completionList[n]
	return
}
